{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"https://raw.githubusercontent.com/Qiskit/qiskit-tutorials/master/images/qiskit-heading.png\" alt=\"Note: In order for images to show up in this jupyter notebook you need to select File => Trusted Notebook\" width=\"500 px\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## _*Topological Quantum Walks on IBM Q*_\n",
    "\n",
    "This notebook is based on the paper of Radhakrishnan Balu, Daniel Castillo, and George Siopsis, \"Physical realization of topological quantum walks on IBM-Q and beyond\" arXiv:1710.03615 \\[quant-ph\\](2017).\n",
    "***\n",
    "### Contributors\n",
    "Keita Takeuchi (Univ. of Tokyo) and Rudy Raymond (IBM Research - Tokyo)\n",
    "***\n",
    "### Qiskit Package Versions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'qiskit': '0.10.3',\n",
       " 'qiskit-terra': '0.8.1',\n",
       " 'qiskit-ignis': '0.1.1',\n",
       " 'qiskit-aer': '0.2.1',\n",
       " 'qiskit-ibmq-provider': '0.2.2',\n",
       " 'qiskit-aqua': '0.5.1'}"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import qiskit\n",
    "qiskit.__qiskit_version__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Introduction: challenges in implementing topological walk\n",
    "In this section, we introduce one model of quantum walk called *split-step topological quantum walk*."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We define Hilbert space of quantum walker states and coin states as \n",
    "$\\mathcal{H}_{\\mathcal{w}}=\\{\\vert x \\rangle, x\\in\\mathbb{Z}_N\\}, \\mathcal{H}_{\\mathcal{c}}=\\{\\vert 0 \\rangle, \\vert 1 \\rangle\\}$, respectively. Then, step operator is defined as\n",
    "\n",
    "$$\n",
    "S^+ := \\vert 0 \\rangle_c \\langle 0 \\vert \\otimes L^+ + \\vert 1 \\rangle_c \\langle 1 \\vert \\otimes \\mathbb{I}\\\\\n",
    "S^- := \\vert 0 \\rangle_c \\langle 0 \\vert \\otimes \\mathbb{I} + \\vert 1 \\rangle_c \\langle 1 \\vert \\otimes L^-,\n",
    "$$\n",
    "\n",
    "where\n",
    "\n",
    "$$\n",
    "L^{\\pm}\\vert x \\rangle_{\\mathcal w} := \\vert (x\\pm1)\\ \\rm{mod}\\ N \\rangle_{\\mathcal w}\n",
    "$$\n",
    "\n",
    "is a shift operator. The boundary condition is included.\n",
    "Also, we define the coin operator as\n",
    "\n",
    "$$\n",
    "T(\\theta):=e^{-i\\theta Y} = \\begin{bmatrix} \\cos\\theta & -\\sin\\theta \\\\ \\sin\\theta & \\cos\\theta \\end{bmatrix}.\n",
    "$$\n",
    "\n",
    "One step of quantum walk is the unitary operator defined as below that uses two mode of coins, i.e., $\\theta_1$ and $\\theta_2$: \n",
    "\n",
    "$$\n",
    "W := S^- T(\\theta_2)S^+ T(\\theta_1).\n",
    "$$\n",
    "\n",
    "Intuitively speaking, the walk consists of flipping coin states and based on the outcome of the coins, the shifting operator is applied to determine the next position of the walk. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, we consider a walk with two phases that depend on the current position:\n",
    "\n",
    "$$\n",
    "(\\theta_1,\\theta_2) = \\begin{cases}\n",
    "    (\\theta_{1}^{-},\\ \\theta_{2}^{-}) & 0 \\leq x < \\frac{N}{2} \\\\\n",
    "    (\\theta_{1}^{+},\\ \\theta_{2}^{+}) & \\frac{N}{2} \\leq x < N.\n",
    "  \\end{cases}\n",
    "$$\n",
    "\n",
    "Then, two coin operators are rewritten as\n",
    "\n",
    "$$\n",
    "\\mathcal T_i = \\sum^{N-1}_{x=0}e^{-i\\theta_i(x) Y_c}\\otimes \\vert x \\rangle_w \\langle x \\vert,\\ i=1,2.\n",
    "$$\n",
    "\n",
    "By using this, one step of quantum walk is equal to\n",
    "\n",
    "$$\n",
    "W = S^- \\mathcal T_2 S^+ \\mathcal T_1.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "In principle, we can execute the quantum walk by multiplying $W$ many times, but then we need many circuit elements to construct it. This is not possible with the current approximate quantum computers due to large errors produced after each application of circuit elements (gates)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Hamiltonian of topological walk\n",
    "\n",
    "Altenatively, we can think of time evolution of the states. The Hamiltonian $H$ is regarded as $H=\\lim_{n \\to \\infty}W^n$(See below for further details.). \n",
    "\n",
    "For example, when $(\\theta_1,\\ \\theta_2) = (0,\\ \\pi/2)$, the Schrödinger equation is\n",
    "\n",
    "$$\n",
    "i\\frac{d}{dt}\\vert \\Psi \\rangle = H_{\\rm I} \\vert \\Psi \\rangle,\\ H_{\\rm I} = -Y\\otimes [2\\mathbb I+L^+ + L^-].\n",
    "$$\n",
    "\n",
    "If Hamiltonian is time independent, the solution of the Schrödinger equation is\n",
    "\n",
    "$$\n",
    "\\vert \\Psi(t) \\rangle = e^{-iHt} \\vert \\Psi(0) \\rangle,\n",
    "$$\n",
    "\n",
    "so we can get the final state at arbitrary time $t$ at once without operating W step by step, if we know the corresponding Hamiltonian.\n",
    "\n",
    "The Hamiltonian can be computed as below.\n",
    "\n",
    "Set $(\\theta_1,\\ \\theta_2) = (\\epsilon,\\ \\pi/2+\\epsilon)$, and $\\epsilon\\to 0$ and the number of step $s\\to \\infty$\n",
    "while $se=t/2$(finite variable). Then,\n",
    "\\begin{align*}\n",
    "    H_I&=\\lim_{n \\to \\infty}W^n\\\\\n",
    "    \\rm{(LHS)} &= \\mathbb{I}-iH_{I}t+O(t^2)\\\\\n",
    "    \\rm{(RHS)} &= \\lim_{\\substack{s\\to \\infty\\\\ \\epsilon\\to 0}}(W^4)^{s/4}=\n",
    "    \\lim_{\\substack{s\\to \\infty\\\\ \\epsilon\\to0}}(\\mathbb{I}+O(\\epsilon))^{s/4}\\\\\n",
    "     &\\simeq \\lim_{\\substack{s\\to \\infty\\\\ \\epsilon\\to 0}}\\mathbb{I}+\\frac{s}{4}O(\\epsilon)\\\\\n",
    "     &= \\lim_{\\epsilon\\to 0}\\mathbb{I}+iY\\otimes [2\\mathbb I+L^+ + L^-]t+O(\\epsilon).\n",
    "\\end{align*}\n",
    "Therefore,\n",
    "$$H_{\\rm I} = -Y\\otimes [2\\mathbb I+L^+ + L^-].$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Computation model "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In order to check the correctness of results of the implementation of quantum walk by using IBMQ, we investigate two models, which have different features of coin phases. Let the number of positions on the line $n$ is 4.\n",
    "- $\\rm I / \\rm II:\\ (\\theta_1,\\theta_2) = \\begin{cases}\n",
    "    (0,\\ -\\pi/2) & 0 \\leq x < 2 \\\\\n",
    "    (0,\\ \\pi/2) & 2 \\leq x < 4\n",
    "  \\end{cases}$\n",
    "- $\\rm I:\\ (\\theta_1,\\theta_2)=(0,\\ \\pi/2),\\ 0 \\leq x < 4$\n",
    "\n",
    "That is, the former is a quantum walk on a line with two phases of coins, while the latter is that with only one phase of coins.\n",
    "\n",
    "<img src=\"../images/q_walk_lattice_2phase.png\" width=\"30%\" height=\"30%\">\n",
    "<div style=\"text-align: center;\">\n",
    "Figure 1. Quantum Walk on a line with two phases\n",
    "</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The Hamiltonian operators for each of the walk on the line are, respectively, \n",
    "$$\n",
    "H_{\\rm I/II} = Y \\otimes \\mathbb I \\otimes \\frac{\\mathbb I + Z}{2}\\\\\n",
    "H_{\\rm I} = Y\\otimes (2\\mathbb I\\otimes \\mathbb I + \\mathbb I\\otimes X + X \\otimes X).\n",
    "$$\n",
    "\n",
    "Then, we want to implement the above Hamiltonian operators with the unitary operators as product of two-qubit gates CNOTs, CZs, and single-qubit gate rotation matrices. Notice that the CNOT and CZ gates are\n",
    "\\begin{align*}\n",
    "  \\rm{CNOT_{ct}}&=\\left |0\\right\\rangle_c\\left\\langle0\\right | \\otimes I_t + \\left |1\\right\\rangle_c\\left\\langle1\\right | \\otimes X_t\\\\\n",
    "  \\rm{CZ_{ct}}&=\\left |0\\right\\rangle_c\\left\\langle0\\right | \\otimes I_t + \\left |1\\right\\rangle_c\\left\\langle1\\right | \\otimes Z_t.\n",
    "\\end{align*}\n",
    "\n",
    "Below is the reference of converting Hamiltonian into unitary operators useful for the topological quantum walk.\n",
    "<br><br>\n",
    "\n",
    "\n",
    "<div style=\"text-align: center;\">\n",
    "Table 1. Relation between the unitary operator and product of elementary gates\n",
    "</div>\n",
    "\n",
    "|unitary operator|product of circuit elements|\n",
    "|:-:|:-:|\n",
    "|$e^{-i\\theta X_c X_j}$|$\\rm{CNOT_{cj}}\\cdot e^{-i\\theta X_c t}\\cdot \\rm{CNOT_{cj}}$|\n",
    "|$e^{-i\\theta X_c Z_j}$|$\\rm{CZ_{cj}}\\cdot e^{-i\\theta X_c t}\\cdot \\rm{CZ_{cj}}$|\n",
    "|$e^{-i\\theta Y_c X_j}$|$\\rm{CNOT_{cj}}\\cdot e^{i\\theta Y_c t}\\cdot \\rm{CNOT_{cj}}$|\n",
    "|$e^{-i\\theta Y_c Z_j}$|$\\rm{CNOT_{jc}}\\cdot e^{-i\\theta Y_c t}\\cdot \\rm{CNOT_{jc}}$|\n",
    "|$e^{-i\\theta Z_c X_j}$|$\\rm{CZ_{cj}}\\cdot e^{-i\\theta X_j t}\\cdot \\rm{CZ_{cj}}$|\n",
    "|$e^{-i\\theta Z_c Z_j}$|$\\rm{CNOT_{jc}}\\cdot e^{-i\\theta Z_c t}\\cdot \\rm{CNOT_{jc}}$|\n",
    "\n",
    "By using these formula, the unitary operators are represented by only CNOT, CZ, and rotation matrices, so we can implement them by using IBM Q, as below.\n",
    "\n",
    "### Phase I/II:<br><br>\n",
    "\n",
    "\\begin{align*}\n",
    "  e^{-iH_{I/II}t}=~&e^{-itY_c \\otimes \\mathbb I_0 \\otimes \\frac{\\mathbb I_1 + Z_1}{2}}\\\\\n",
    "  =~& e^{-iY_c t}e^{-itY_c\\otimes Z_1}\\\\\n",
    "  =~& e^{-iY_c t}\\cdot\\rm{CNOT_{1c}}\\cdot e^{-i Y_c t}\\cdot\\rm{CNOT_{1c}}\n",
    "\\end{align*}\n",
    "\n",
    "<img src=\"../images/c12.png\" width=\"50%\" height=\"60%\">\n",
    "<div style=\"text-align: center;\">\n",
    "Figure 2. Phase I/II on $N=4$ lattice$(t=8)$ - $q[0]:2^0,\\ q[1]:coin,\\ q[2]:2^1$\n",
    "</div>\n",
    "\n",
    "<br><br>\n",
    "### Phase I:<br><br>\n",
    "\n",
    "\\begin{align*}\n",
    "  e^{-iH_I t}=~&e^{-itY_c\\otimes (2\\mathbb I_0\\otimes \\mathbb I_1 + \\mathbb I_0\\otimes X_1 + X_0 \\otimes X_1)}\\\\\n",
    "  =~&e^{-2itY_c}e^{-itY_c\\otimes X_1}e^{-itY_c\\otimes X_0 \\otimes X_1}\\\\\n",
    "  =~&e^{-2iY_c t}\\cdot\\rm{CNOT_{c1}}\\cdot\\rm{CNOT_{c0}}\\cdot e^{-iY_c t}\\cdot\\rm{CNOT_{c0}}\\cdot e^{-iY_c t}\\cdot\\rm{CNOT_{c1}}\n",
    "\\end{align*}\n",
    "\n",
    "<img src=\"../images/c1.png\" width=\"70%\" height=\"70%\">\n",
    "<div style=\"text-align: center;\">\n",
    "Figure 3. Phase I on $N=4$ lattice$(t=8)$ - $q[0]:2^0,\\ q[1]:2^1,\\ q[2]:coin$\n",
    "</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Implementation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "#initialization\n",
    "import sys\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "\n",
    "# importing QISKit\n",
    "from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister\n",
    "from qiskit import Aer, IBMQ, execute\n",
    "\n",
    "from qiskit.tools.monitor import job_monitor\n",
    "from qiskit.providers.ibmq import least_busy\n",
    "from qiskit.tools.visualization import plot_histogram"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "IBMQ.load_account()\n",
    "sim_backend = Aer.get_backend('qasm_simulator')\n",
    "device_backend = least_busy(IBMQ.backends(operational=True, simulator=False))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Quantum walk, phase I/II on $N=4$ lattice$(t=8)$**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OPENQASM 2.0;\n",
      "include \"qelib1.inc\";\n",
      "qreg q0[3];\n",
      "creg c0[3];\n",
      "x q0[2];\n",
      "u3(8,0,0) q0[1];\n",
      "cx q0[2],q0[1];\n",
      "u3(8,0,0) q0[1];\n",
      "cx q0[2],q0[1];\n",
      "measure q0[0] -> c0[0];\n",
      "measure q0[1] -> c0[2];\n",
      "measure q0[2] -> c0[1];\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArgAAAEsCAYAAAAo38DnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3de1xUdf7H8feAKaZcVMwURQWzvCFIZJAKaoqteIusrGiVTLtnqUF2M9v8oV1Wa9uK9ZemYK2mhaai6wVTU0wNTdcyRUF7VEg5DqKrBuf3Rz9nJVEGZWbg8Ho+HufxGM98z3w+M3OceXPmO2cshmEYAgAAAEzCw90NAAAAAFWJgAsAAABTIeACAADAVAi4AAAAMBUCLgAAAEyFgAsAAABTIeACAADAVAi4AAAAMBUCLgAAAEyFgAsAAABTIeACAADAVAi4AAAAMBUCLgAAAEyFgAsAAABTIeACAADAVAi4AAAAMBUCLgAAAEyFgAsAAABTIeACAADAVAi4AAAAMBUCLgAAAEyFgAsAAABTIeACAADAVAi4AAAAMBUCLgAAAEyFgAsAAABTqePuBmBe48aNU05OjsvrhoaGasaMGS6vCwAAqgeO4MJpcnJyXB5w3VETAABULxzBhVOFhoYqKyvLZfViYmJcVgsAAFRPHMEFAACAqRBwAQAAYCoEXAAAAJgKARcAAACmQsAFAACAqRBwUaOdOXPG3S0AAIBqhtOEoVrYu3evPvvsM23fvl379+/X2bNn5efnp9DQUEVFRWnYsGG6+uqry2zz/fffa8CAAXr77bf1pz/9yU2dAwCA6qbWHMGdM2dOpc+RGh4erpUrVzqnIUiSvvrqK/Xp00cdO3bUpEmTlJOTo8DAQHXo0EF16tTRvHnzdN999ykgIEDPPvusTp48Ken3cNu7d2/ZbDa1atXKzfcCAABUJ24NuCUlJZo4caKaNm0qb29vxcfHq7CwsNrUHjJkiJYsWeKSfmqb0tJSvfDCC4qMjNS3336rqVOn6qefftL+/fu1ZMkSffLJJ1q/fr2sVqvWr1+v/v37KyUlRV27dtWiRYvUu3dvnT59WmvXrlWXLl3cfXcAAEA14taAm5KSooyMDGVnZ+vIkSOSpISEhGpTm4DrHKWlpRo5cqT+8pe/KCEhQf/+97/17LPPqlmzZheM9fDwUK9evfTPf/5Ta9eu1cmTJzV8+HCdOHGCcAsAAMrl9IC7YMECtWvXTg0bNlT//v01fvx4DR8+XJKUmpqqpKQkBQUFydfXV9OnT1dmZqby8vKc3ZZDtbt27SpPT09t377d6f3UJpMnT9a8efP0yiuvaPbs2fLz83Nou5YtW8owDHl4eOi3336Tj4+PkzsFAAA1kVMD7ocffqjx48crPT1dRUVFiouL08yZMxUWFiar1ar8/HyFh4fbxwcHB8vHx0c7d+6sVJ2UlBSFhIQ4PL4ytYcMGaKMjIxK9YOL2759u6ZOnaqEhAQ9//zzDm93bs7t2bNntXTpUlksFo0ePVqGYTixWwAAUBM5LeCePHlSTz/9tFJTU9W9e3d7ICkpKVFYWJiKiookSb6+vmW28/Pzk81mkySlpaUpMjJSkZGRWrdu3UVrJScna9euXQ735kjtcwYOHKhly5Y5fNu4tEmTJsnf318zZ850eJtz4fbcnNvbbrtN06ZN0+rVq7Vq1SondgsAAGoip50mbP369SotLdVtt91mX3f06FFJUlhYmLy8vCRJx48fL7Od1WqVj4+PrFarXn/9dW3ZskUnTpzQrbfeqh07dsjD48ozube39yVrny8vL0+BgYFXXLMiFovF6TXcITo62n75+++/16pVqzRlyhQ1atTIoe3/GG7Pzbl94IEH9PLLL+vdd99VbGxsmW3Wr19v2scTAAD87lKf4jot4BYUFOiaa64ps27+/Plq1qyZrr32WklSYGCgduzYodDQUElSbm6ubDabQkJClJ2drejoaHl5ecnLy0stWrTQoUOHFBQUdMW9+fn5XbL2+ZYsWaL4+PgrrlkRM37U/sfTsp37wl5iYqJD218s3EpSvXr1dN999+ntt9/W6dOnVa9ePft10dHRysrKuuL+AQBAzeS0KQodO3bU/v37tX79ep05c0bz589XSkqKwsLC7GPGjBmjadOm6eDBg7LZbEpKSlJsbKzatGmjX375pcxRvkaNGumXX36psv4uVfuc4uJirVu3TnFxcVVWtzbbvn27WrVqpYCAgArHXircnhMZGamzZ8/qm2++cUa7AACghnJawI2IiNBzzz2n22+/XS1btlR2dra6d+9eJuAmJydr0KBBioiIUEBAgEpKSpSWliZJatKkiY4dO2Yfa7Va1aRJk3JrTZ06VZ06dapUf5eqfc6qVasUFhYmf3//St02ynfgwAF16NChwnGOhFtJ9tvav39/lfYJAABqNovhws/G27Rpo9dee81+mrBLsVqt6tOnjzZv3qzi4mL16dPniubgzpkzR3PmzKnUR9ejRo1Sp06dNGHChMuqWdudm6Jw7jE/9/ydmxZyMf/zP/+jN998s8Lz3J48eVLZ2dnq1KmTfTrMH2sCAIDax2lzcP/IZrMpLy+vzBHcS/Hz89O4cePsgeWNN96oki+YVUbr1q0dCuNwTLdu3Rwal5ycrJEjR6p58+aXHHf11Verd+/eVdEaAAAwEZcF3N27d8vb21vBwcEOb3P//ffr/vvvr5L6oaGhGjlyZKW2mTx5cpXURuVYLJYKwy0AAMDFuCzgRkVFXXCOWVcKDQ2t8KNxAAAA1Hyu/cwfAAAAcDICLgAAAEyFgAsAAABTIeACAADAVAi4AAAAMBUCLgAAAEzFZacJQ+2Uk5Nj/7EOV9XjdHAAANRuHMGF01zuuYdz838s97IzawIAAPOwGIZhuLsJ4HzJ01KVkjTmgssAAACO4AguAAAATIWACwAAAFMh4AIAAMBUCLgAAAAwFQIuAAAATIWACwAAAFMh4AIAAMBUCLgAAAAwFQIuAAAATIWACwAAAFMh4AIAAMBUCLgAAAAwlTrubgAwq3HjxiknJ8fdbZhGaGioZsyY4e42qgz7R9Uy2/7hSu7cF3ne4CwcwQWcJCcnhwBTRcz4WJrxPrkLj+WVcdfjx/MGZ+IILuBEoaGhysrKcncbNV5MTIy7W3AK9o+qYdb9w5XcsS/yvMGZOIILAAAAUyHgAgAAwFSYogCgVsvPz9enn36qbdu26bvvvtOZM2fk4+OjkJAQde/eXcOGDVPDhg3d3Sbc5NSpU8rIyNDmzZu1c+dOWa1WXXXVVbruuusUHh6uoUOHKjg42N1tAvgDjuACtURBQYEsFou+/vrrMuvz8vJksVi0d+9eN3XmHt99952GDh2qtm3baty4cVq7dq0aNWqknTt3yjAMzZ07V/fff78CAgI0fvx4FRUVubtlp2L/KOvUqVN6/vnn1bJlS40YMUKzZs3S2bNn1bp1a23btk0bN27UhAkT1K5dO912223auXOnu1sGcB4CLlBLfPXVV6pfv766dOlSZv3WrVvl7e2t66+/3k2duZZhGJo5c6ZCQ0O1fv16JScnKzc3Vz/88INWrlwpSdqwYYOsVqs2btyouLg4/fWvf1WXLl20YcMGN3fvPOwf/7Vt2zaFhobq1VdfVUxMjNasWSObzaZNmzYpIyND0u9H/g8fPqyXX35Z27dv14033qi//OUvMgzDzd0DkAi4QK1x7k27Tp2yM5O2bt2q8PBweXiY/+XAMAw988wzGjdunPr166e9e/fq1VdfVdu2bS8Y6+HhoVtuuUXp6enauHGj6tatq379+mnFihVu6Nz52D9+t2HDBsXExOg///mPVq9erUWLFqlPnz7y9PS8YGzLli314osvau/evRo+fLheeOEFjR07lpALVAPMwQVqiW3btikiIuKC9Vu3blX37t3d0JHrvfvuu3r99df16KOP6q233nI4tEVFRWnLli3q16+f4uPjtW3bNnXs2NHJ3boW+8fv0zHi4uLUqlUrrV27Vs2bN3douyZNmig9PV1BQUF69dVX1aZNG02aNMnJ3brXjz/+qO3bt6uwsFAWi0WBgYHq1q2bfH19yx1/+PBhrV69WqNGjXJxp6itasef5ADKDTClpaXasWOHIiIi9PPPPysqKkoxMTHq3r271qxZ46ZOnePAgQOaOHGiYmNjKxVuz2ncuLGWL1+uq6++WqNGjdJvv/3mpE7do7bvH4ZhaPTo0SotLdXy5csdDrfnWCwWvfLKK7rrrrs0efJk7dq1y0mdus+xY8f0xhtvqH379mrRooUGDRqkUaNGaeTIkerTp4/8/Pzsn3qcOXPGvt3hw4cVExOjp556SgUFBW68B6hNak3AnTNnTqVPKh0eHm6fkwfUZD/88IN++uknhYeHl1mfk5OjEydO6Oabb5a/v782bNigrKwsffTRR0pOTnZTt84xefJkeXh46B//+Mdlf9zerFkzvf3229q6dasWLFhQxR26D/uHtHLlSq1evVrTpk0rd8qKIywWi/72t7/J19fXdEdwFy5cqPbt22vChAm69tpr9de//lUbNmxQbm6u9u/frxUrVujll1/W0aNHdd999+nGG2/Ujh077OG2sLBQq1at0jXXXOPuu4Jawq0Bt6SkRBMnTlTTpk3l7e2t+Ph4FRYWVpvaQ4YM0ZIlS1zSD+BMR44ckST5+fmVWT9//nzdfPPNatWqlTw9Pe3zDK1Wq0JCQlzep7McPXpUCxYs0MiRI9WqVasruq277rpLwcHBevfdd6uoO/er7fuHJP39739Xs2bNNHr06Cu6HX9/fz388MNavny5Dh06VDXNuVFpaamefPJJ3XnnnWrTpo127NihL774QuPGjVOPHj3Utm1bBQcHa8CAAXrxxRf17bffavHixSosLFRERIRuvPFGFRYW6l//+pduuukmd98d1CJuDbgpKSnKyMhQdna2/QU2ISGh2tQm4MIsOnToIF9fX6WkpMhqterXX3/Ve++9p7///e9KSUmxjzt48KB69Oih2NhYDRs2zI0dV60VK1bozJkzeuCBB674tjw8PDRq1Cht3LhRR48erYLu3K+27x+nTp3SihUrlJCQoLp1617x7SUmJsowDFO8fyQlJemtt97SuHHjtHnzZoWFhV1yvIeHh4YNG6aVK1eqbt26Kigo0LPPPku4hcs5PeAuWLBA7dq1U8OGDdW/f3+NHz9ew4cPlySlpqYqKSlJQUFB8vX11fTp05WZmam8vDxnt+VQ7a5du8rT01Pbt293ej+AM/n4+Ojzzz/Xtm3b1LJlS91www1avHixMjMzFR0dbR/Xtm1bbdy4UdnZ2Xrsscfc2HHV2r59uxo0aHDBKbAuV1RUlCRpx44dVXJ77lbb949du3bpt99+U2RkZJXcXps2bdS8efMa/96xatUqvf7663r44Yf15ptvXnCGjYs5fPiwhg4dqrp166pz585KSUnRDz/84ORugbKcGnA//PBDjR8/Xunp6SoqKlJcXJxmzpypsLAwWa1W5efnl5nzFRwcLB8fn0qfMDslJaVSH5dVpvaQIUPs5z0EarIePXpo06ZNOnHihAoKCrRq1Sr16tXLfv3p06ftl318fEz161379+/X9ddfX+6pni5Hhw4dJEnff/99ldxedVDb9w9JVXpmjA4dOtTo/ePMmTN68MEH1aFDB7355puyWCwObXf+nNt//etf+vTTT3XmzBk9+eSTTu4Y+APDSYqLi43GjRsby5cvL7NOkrF8+XIjPz/fkGTk5uaW2S4wMNCYN2+eYRiG0bdvX8Pf39945ZVXrrif2bNnG9HR0YZhGA7VPmflypVGt27drrh+RSSxmHA5t8/VBBs2bDB69uxpxMTEGLfccouxevVqd7dkFx0d7fbnkv2D/cPMyx/3xY8++siQZCxbtszh5yE/P98ICgoyfHx8jOzsbPv65557zrBYLMbBgwd53liqdLkUpx3BXb9+vUpLS3Xb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5ptvdODAAS1cuFBvv/223nvvPWVlZamwsFAfffSRvL29deedd+rOO+/UyJEjNXv2bL300kuaPHmyu++K27k14KakpCgjI0PZ2dk6cuSIJCkhIaHa1CbgwowaNmyoCRMmaMqUKTIMQyUlJbrzzjtVr149paenl/m4y+xKS0t155136v3339dvv/1W5rpff/1VDz74oN599103dYfq4KOPPtKIESN09OjRMutLS0uVlpamQYMG6ezZs27qDmayZs0a9e/fXw0aNNCWLVv03nvvqXPnzuWOrVu3ru6++2599dVXeuWVV7Rw4ULNmzdPzz77LOH2/zn9nWzBggVq166dGjZsqP79+2v8+PEaPny4JCk1NVVJSUkKCgqSr6+vpk+frszMTOXl5Tm7LYdqd+3aVZ6entq+fbvT+wFc6bHHHtNPP/2kRYsWacyYMTpy5IgyMjJUr149d7fmUqtXr67wj9hnnnmGo3S11NmzZ/Xkk0/KYrHIMIxyx2RlZenTTz91cWcwm7y8PA0bNkzXXXedNm3apIiICIe28/DwUG5urv3f+fn5zmqxxnFqwP3www81fvx4paenq6ioSHFxcZo5c6bCwsJktVqVn5+v8PBw+/jg4GD5+Pho586dlaqTkpKikJAQh8dXpvaQIUOUkZFRqX6A6q5BgwaaOHGiRo4cqaysLGVmZsrHx8fdbblcampqhUesT5w4YZ/jhtrl888/19GjRy8abqXfA8b777/vwq5gNoZhaPTo0TIMQ0uWLJG/v79D250/5/all17SSy+9pPT0dDLL/3NawD158qSefvpppaamqnv37rJYLBo9erRKSkoUFhamoqIiSZKvr2+Z7fz8/GSz2XTgwAH16tVLPXv2VI8ePbRt27aL1kpOTtauXbsc7q2i2ucbOHCgli1b5vBtAzVJcXGxkpOT1axZM3e34hb79u1zaM7x/v37XdANqhtHnvfS0lLt27fPBd3ArLKysrR69WpNnTpVbdq0cWibP4bbyZMna9KkSerUqZOee+65S/5RVmsYTrJ8+XLDz8+vzLpDhw4Zkowff/zROHbsmCHJ+Prrr8uM8fHxMTIyMozCwkKjsLDQMAzD2LNnj9GjR48r6mf27NlGdHS0YRhGhbXPl5qaagwdOvSKajtCEgvLZS/n9m1HzZs3z2jUqJGRmJhodOrUySgtLa30PhsdHe32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\n",
      "text/plain": [
       "<Figure size 903x379.26 with 1 Axes>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t=8 #time\n",
    "\n",
    "q1_2 = QuantumRegister(3)\n",
    "c1_2 = ClassicalRegister(3)\n",
    "qw1_2 = QuantumCircuit(q1_2, c1_2)\n",
    "\n",
    "qw1_2.x(q1_2[2])\n",
    "qw1_2.u3(t, 0, 0, q1_2[1])\n",
    "qw1_2.cx(q1_2[2], q1_2[1])\n",
    "qw1_2.u3(t, 0, 0, q1_2[1])\n",
    "qw1_2.cx(q1_2[2], q1_2[1])\n",
    "\n",
    "qw1_2.measure(q1_2[0], c1_2[0])\n",
    "qw1_2.measure(q1_2[1], c1_2[2])\n",
    "qw1_2.measure(q1_2[2], c1_2[1])\n",
    "\n",
    "print(qw1_2.qasm())\n",
    "qw1_2.draw(output='mpl')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Below is the result when executing the circuit on the simulator."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "job = execute(qw1_2, sim_backend, shots=1000)\n",
    "result = job.result()\n",
    "plot_histogram(result.get_counts())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And below is the result when executing the circuit on the real device."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Job Status: job has successfully run\n"
     ]
    }
   ],
   "source": [
    "job = execute(qw1_2, backend=device_backend, shots=100)\n",
    "job_monitor(job)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcQAAAFDCAYAAACk6n5/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3de3xU1b338c9PIAgUNMEUEjBcxMZwaToEqa2CqNij9FQp8igeb73pQT324kNR+2qt2h7aQrVYq7XVtl6o4gWtrZVWaXzEKlYMlwrEFIyEQgJFQEi5BIi/54+1gyEmIQOZmWTyfb9eeTGzLzNr7xnmu/faa61t7o6IiEhHd1SqCyAiItIWKBBFRERQIIqIiAAKRBEREUCBKCIiAigQRUREAOic6gIkSu/evT0vLy/VxRARkTZk2bJl77p7dmPz0jYQ8/LyKC4uTnUxRESkDcnKyqpoap6qTEVERFAgioiIAApEERERQIEoIiICKBBFREQABaKIiAigQBQREQEUiCIiIoACUUREBFAgioiIAApEERERQIEoIiICKBBFREQABaKIiAigQBQREQEUiCIiIoACUUREBFAgioiIAApEERERQIEoIiICKBBFREQABaKIiAigQBSJ24IFCxg9ejRFRUXMnj37Q/PXr1/Peeedx+mnn85pp53GCy+8AMCLL77IGWecwamnnsoZZ5zBwoULD6yzbNkyTj31VIqKirjxxhtx96Rtj4gECkSRONTW1jJ9+nQef/xxFi1axLx583jrrbcOWubHP/4xEydO5KWXXuL+++9n2rRpAPTu3ZtHHnmEV155hbvvvpurr776wDrTpk1j9uzZvPHGG7z99tssWLAgqdslIgpEkbiUlJQwaNAgBg4cSEZGBpMmTWL+/PkHLWNmVFdXA7Bjxw769u0LwMc//nFycnIAKCgoYPfu3dTU1LBx40aqq6s5+eSTMTOmTJnCc889l9wNExE6p7oAIu1JVVUV/fr1O/A8NzeXkpKSg5a54YYbuOCCC/jlL3/Jrl27ePrppz/0Or///e8pLCyka9euVFVVkZube9BrVlVVJW4jRKRROkMUaWXz5s3j4osvZuXKlTz22GNMnTqV999//8D80tJSbr31Vu64444UllJEGlIgisQhJyeHDRs2HHheWVl5oBq0zpw5c5g4cSIAo0ePpqamhi1btgCwYcMGLr/8cu655x4GDRp04DUrKyubfU0RSTwFokgcRo4cSXl5ORUVFezdu5ennnqKc84556Bl+vfvf6AFaVlZGTU1NRx33HFs376dKVOmcPPNN3PKKaccWL5v37707NmTxYsX4+7MnTuXCRMmJHW7RESBKBKXzp07M3PmTCZPnswpp5zCxIkTKSgoYMaMGQca13zve9/joYceYsyYMVx55ZX87Gc/w8y47777eOedd5g1axZjx45l7NixbN68GYBZs2bxta99jaKiIgYNGsT48eNTuZkiHZKla3+nWCzmxcXFqS6GiIi0IVlZWSXuPqqxeTpDFBERQYEoIiICKBBFREQABaKIiAigQBQREQEUiCIiIoACUUREBFAgioiIAApEERERQIEoIiICKBBFREQABaKIiAgAnVNdAJG2bvqDmSl9/5lXbEvp+4t0FDpDFBERIQWBaGbXmNk7ZrbHzErMbMwhlv8vM1tmZrvMbKOZzTGzvskqr4iIdAxJDUQzuwi4E5gBxIBXgflmltfE8qcCDwMPAsOAicBQ4LdJKbCIiHQYyT5DvB54wN3vc/dSd78OqAKubmL5TwHr3f0n7v6Ou78G3AV8MknlFRGRDiJpgWhmGUAR8HyDWc8Dn25itVeAHDP7nAXHAVOA5xJXUhER6YiS2cr0OKATsKnB9E3A+MZWcPdFZjaFUEXajVDeF4ArGlvezK4CrgLIyclhyZIlAOTm5tK9e3fWrFkDwDHHHMPgwYNZunQpAJ06daKwsJCysjJ27twJQEFBAVu3bmXTplDc/v37k5GRQXl5OQCZmZnk5eWxfPlyALp06cKIESMoLS1l9+7dAAwdOpTNmzezefNmAAYMGICZsXbtWgB69+5NTk4OK1asAKBr164MGzaMlStXUlNTA8Dw4cOpqqpiy5YtAAwcOBB3p6KiAoDs7Gyys7NZtWoVAN26daOgoIA333yTffv2AVBYWMi6devYti20Vhw8eDB79+5l/fr1APTp04esrCxKS0sB6NGjB/n5+Sxfvpza2loAYrEY5eXlbN++HYAhQ4awa9cuKisrqdvfvXr1oqysDICePXty4oknsnTpUtwdMyMWi7F69Wqqq6sByM/PZ8eOHVRVVbXpzwnOauzrljR132N9Tvr/pM/pyD+n5pi7N7tAazGzXGADcLq7L6w3/WbgEnfPb2SdoYQAnA38GcgBZgHL3P3y5t4vFot5cXFxK26BdFTqdiGSPrKyskrcfVRj85J5hvguUAv0aTC9D7CxiXVuAl5391nR87+b2U7gZTP7lruvT0xRRUSko0naNUR33wuUAGc3mHU2obVpY7oTQrS+uufqQykiIq0m2SPV3AE8bGavExrMTAVygXsBzOwhgHrVoX8A7jOzq/mgynQ2sMTd1yW57CIiksaSGoju/piZ9Qa+TQi3FcAEd6+IFslrsPwDZtYT+B/gdmA7UAzckLxSi4hIR5D0sUzd/R7gnibmjWtk2l2EvociIiIJo+twIiIiKBBFREQABaKIiAigQBQREQEUiCIiIoACUUREBFAgioiIAApEERERQIEoIiICKBBFREQABaKIiAigQBQREQEUiCIiIoACUUREBFAgioiIAApEERERQIEoIiICKBBFREQABaKIiAigQBQREQEUiCIiIoACUUREBFAgioiIAApEERERQIEoIiICKBBFREQABaKIiAigQBQREQEUiCIiIoACUUREBFAgioiIAApEERERQIEoIiICKBBFREQABaKIiAigQBQREQEUiCIiIoACUUREBIgzEM3sQjP7TL3nN5vZejP7s5nltH7xREREkiPeM8Rb6h6Y2UjgW8BPgS7A7a1XLBERkeTqHOfyA4Cy6PHngd+5+0wzex74c6uWTEREJIniPUPcA/SMHp8FLIgeb683XUREpN2J9wzxZeB2M/srMAqYHE3/GPDP1iyYiIhIMsV7hvg/wF5CEE5198po+rmoylRERNqxuALR3de7++fcvdDdf11v+tfd/asteQ0zu8bM3jGzPWZWYmZjDrF8hpndFq1TY2brzKxF7yUiItJS8VaZYmZHA/8JnAD8wt3fM7MTgG3uvvUQ614E3AlcA/w1+ne+mQ1193VNrDYX6A9cBawG+gDd4i23iIhIc+IKRDMbQmhI8xHgWOAJ4D3g6uj5Vw7xEtcDD7j7fdHz68zsnGj9mxp5v88QGu+c4O7vRpPXxlNmERGRloj3GuJs4HnCWdruetN/D5zR3IpmlgEURevX9zzw6SZWmwgsBq6PBgBYbWY/NbOPxFluERGRZsVbZfpp4BR3rzWz+tPXAbmHWPc4oBOwqcH0TcD4JtYZDJwG1AAXEM5C74rea3LDhc3sKkLVKjk5OSxZsgSA3Nxcunfv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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "result = job.result()\n",
    "plot_histogram(result.get_counts())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Conclusion**: The walker is bounded at the initial state, which is the boundary of two phases, when the quantum walk on the line has two phases. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Quantum walk, phase I on $N=4$ lattice$(t=8)$**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OPENQASM 2.0;\n",
      "include \"qelib1.inc\";\n",
      "qreg q1[3];\n",
      "creg c1[3];\n",
      "x q1[1];\n",
      "cx q1[2],q1[1];\n",
      "u3(8,0,0) q1[2];\n",
      "cx q1[2],q1[0];\n",
      "u3(8,0,0) q1[2];\n",
      "cx q1[2],q1[0];\n",
      "cx q1[2],q1[1];\n",
      "u3(16,0,0) q1[2];\n",
      "measure q1[0] -> c1[0];\n",
      "measure q1[1] -> c1[1];\n",
      "measure q1[2] -> c1[2];\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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9NBDOnXqlIurB4CyO3/+vEaOHKnOnTvrxIkTmjZtmrKzs/W///1PK1askCR9//33ys3NVUpKilq0aKExY8bo3nvv1cGDB11cPQCgqiJsokrJzs5WZGSkvvjiC02dOlVbt27V0KFDVbt27RJ9b7rpJg0ZMkTff/+9Xn/9da1atUqRkZHKzs52QeUAcH3Onz+vvn376u2339bo0aO1Z88ejR49WnXr1i3R94YbblCfPn303//+Vx999JH279+ve++9V/v27XNB5QCAqo6wiSrDbrfr4YcfLvol/7nnnpObm9s153Nzc9PYsWO1cuVKHThwQH379uXQMgCVxjPPPKMvvvhCs2bN0rRp03TjjTdecx6LxaKBAwdq06ZNkqQePXrIZrM5ulRUE3l5edq0aZPmzZunOXPm6LPPPtPhw4eveLpKYWGh3nzzTZ07d87JlQJwNMImqoyZM2dqw4YNeu+999S1a9cyz9+lSxclJiZq48aNmjFjhgMqBABzrVy5Uh988IHi4+M1fPjwMs/fsmVLffrppzp69Kiee+45B1SI6qKwsFDLli1Tjx49ZLVaFRYWpiFDhigmJkZ9+/ZV06ZNdfvtt2vChAk6ceJEsfmGDx+usWPH6pNPPnHhKwDgCNUmbCYlJZX5BsFBQUFavXq1YwqCqc6ePasJEybowQcf1JNPPnndy3niiSfUq1cvTZgwQbm5uSZWCADmMgxD48aNU8uWLTVx4sTrXk5oaKj+8Y9/aNasWRxOi+ty4MABRUZGKjo6Wrt27dLzzz+vlJQU/fjjj8rIyNC3336rd955R23bttWrr76qO++8U++8844uXryo4cOHa86cOZowYYKGDBni6pcCwGQuDZuLFi1SeHi4rFar0y/BbrfbNW7cONWvX19eXl7q169fiXP1oqOjtWzZMqfWVdGdPXtW9evX13/+85+itt9++02dOnXSI488osLCQpfUlZycrNzcXL388svluo2JxWLRSy+9pLNnzyo5OdnECgHAXF9//bV++OEHPf/886pVq1a5lvX888+rZs2aeu+990yqDtXFmjVrFBAQoJ07d2r27NnKzMzUv/71L/Xp00d33nmnmjRpopCQED399NNauXJl0XnCzzzzjJo3b14UNMvzgwmAisulYdPX11exsbGaPn2608dOSEhQSkqK0tLSdOzYMUnS4MGDi/UhbJZU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VBCzZ89Wp06dJKnEjxK1atXSZ599Jj8/P1eUdkUhISH64IMPZLFYin1punSE0KOPPlotrsINAKVVUFCgn3/+WXfeeec1+5YmaErSnXfeqfPnz+vkyZNml1upOPRqtK+88opOnTqlrKwszZgxQ/v37y8WNocOHXrZXbGX9i4+++yzat68uZ5++umrjvPiiy9qz549ZarNzc1Nr7/+urKzs5Wbm6ulS5eWCJXOOoQWjvV///d/2rhxowYMGKDbb79djRo10qOPPqoNGzbotddeY69mNdepUyft3btXEyZM0F133aVbb71VHTp00IcffqhvvvmGH5uqOS8vL3311VdKTk5WWFiYbrvtNjVv3lzx8fHau3evunfv7uoSL2vo0KHauXOnYmNj1aRJEzVo0EDdunXTsmXL9NFHH8nd3d3VJQJAhVGzZk39+OOPGjFixFX7GYahL7/88ppBU5IeeeQR/fjjj6U6fbAqc9qnjc1mU2ZmZqlve5KamqrExER16tRJa9euVZ06dbR06VIHV1lc48aNi+4Jisrt3nvv1b333uvqMpzi3Llz6t+/v/Ly8uTt7a3FixerVq1aJfpdvHhRw4YNU0ZGhnr16nXFQ9Vzc3P12GOP6fTp03rqqaf05JNPOvolOF2DBg00ceJETZw40dWlOBzrR9ndcMMNeuyxx/TYY4+5upQyad26td566y299dZbri4FQCmdOHFCvXr10g8//KCzZ88W/TA0b948zZ07V3a7XcnJyWrYsGGJedluX78aNWqUaq+mxWLRvHnzdOHChasGTUny9fWVr6+vWSVWWg7ds/lHu3fvlpeXl5o1a1aq/pGRkSooKFBqaqpSU1PLHTQDAgI0dOjQMs0zceJENW7cuFzjAs62atUqhYSEKDU1VR06dNCqVasu22/ZsmVq0aKFNm7cqI0bN17xMI9Zs2Zp4MCB+vrrrzV79uxS3U4GFRfrBwBUXHXq1NHatWvVsWPHorbjx49r/fr1Wrt2rVJTUy8bNCW2287i7u5+zaCJ/5/TwmanTp1ks9lcdsji9YRNoDJq1qyZ8vLyJEk5OTlFV3X+s2+//VbdunWTJN1///367rvvrtrPzc1N7dq10759+xxTOJyC9QMAKi4PD48Se8NWr14tu92uLl266Nlnn5Xdbr/svGy3URE5LWwCcI477rhDmzdvVuvWrbVly5aii5v8WU5OjqxWqyTJ29tbOTk55eqHyoH1AwAql59//lkFBQVau3atbrzxRqWkpFy2H9ttVESETaCKmTt3rnr37q09e/aoZ8+eJa6yfIm3t7dsNpuk38+p9vHxKVc/VA6sHwBQuXh7exfdF7Jz587au3fvFfux3UZFQ9gEqhjDMFSnTh1Jv9/a48yZM7p48aJ+/vnnYv1CQ0O1du1aSdK6desUHBys3377TadPn75sP7vdrvT0dLVo0cI5LwQOwfoBAJVLp06dtHPnTklSenq6mjZtynYblQZhE6hiHnvsMS1evFiRkZFKTk7W448/rsOHD+ull14q1q93797avXu3wsLCFBoaqttuu02bNm3Su+++W6zf8OHDlZycrPDwcMXExOiGG25w5suByVg/AKDiunDhgrp27aodO3YoKipKaWlpCggIkKenpyIjI/X999/rkUceYbuNSoMbbQFVjI+Pj1avXl2sbd26dRo0aFCxtpo1ayo5OblY265duzRgwIBibVarVZ9//rljioXTsX4AQMVVs2ZNrVmzpkT766+/XuzfO3bsYLuNSoGwCThQenq6IiMjXV1GkVdeeeWafa504QFXSk9PV0BAgKvLMB3rhzmq6voBoOKoaNvrSyrbdrsiba9d8Z5WpNfvLIRNwEGq28bEkQICAqrc37OqvR5XqorrB4CKg+2LeSrK9ro8NRw68pP8/W4r8bi041aE1+9MhE3AQaZPn+7qElCBsX4AQOXA9rrqKc97Gj85UQlxI0o8xuVxgSAAAAAAgOkImwAAAAAA0xE2AQAAAACmI2wCAAAAAExH2AQAAAAAmI6wCQAAAAAwHWETAAAAAGA6wiYAAAAAwHSETQAAAACA6QibAAAAAADTETYBAAAAAKYjbAIAAAAATEfYBAAAAACYjrAJAAAAADAdYRMAAAAAYDrCJgAAAADAdIRNAAAAAIDpCJsAAAAAANO5u7oAAAAAR8jNO6dz5/JLtP/8y+nLPq7jY1XNmnw1AgCzsEUFAABV0pncPL0991MZf2qf9uF/SjyuX8dbo2P6O7E6AKj6OIwWAABUSY1ura/2d99Zqr49O4fKzY2vRQBgJraqAACgyoqK6KAbrnFo7J1NG+ku/9udVBEAVB+ETQAAUGVZa9+o+0MDr/h8DYtFPe/vKIvF4sSqAKB6qHBhc9GiRQoPD5fVapW7u3NPKbXb7Ro3bpzq168vLy8v9evXT9nZ2U6tAQAAmCvsnjbysda+7HMhgS11S/06Tq4IAKqHChc2fX19FRsbq+nTpzt97ISEBKWkpCgtLU3Hjh2TJA0ePNjpdQAAAPPUrOmuByNDSrR71LpBXcPucUFFAFA9uCxsbtq0SV26dJHVapWPj4/69//9CnBRUVEaNGiQ/P39nV5TYmKi4uLi5O/vL29vb02ZMkWrVq1SZmam02sBAADmadPCX00a3VqsrWtYkG7y9HBRRQBQ9bkkbC5ZskR9+/ZVbGyssrKydPToUQ0fPtzUMRISEtS2bdtS98/JydGRI0cUFBRU1NasWTNZrVbt2LHD1NoAAIBzWSwW9eoSqktnZtav463QwNYurQkAqjqnh828vDw99dRTSkxMVL9+/eTh4SEvLy9FRUWVav4FCxYoNDRUoaGhWrdu3RX7xcfHa+fOnaWuKzc3V5Lk7e1drN3Hx0c2m63UywEAABXTH2+Fwq1OAMDxLIZh/Plexw61cuVKDRkyRFlZWVe98ltqaqq6du2qixcvFrXl5OQoMjJS3377rc6ePauuXbtq27ZtqlGj/B8WOTk58vX11fbt2xUQEFDU7u3trfnz56tPnz7lHuNq4icnOnT5AAAAAGC2hLgRV3zOuZd7lZSdnS1fX9/rusR4WlqaIiIi5OHhIQ8PDzVo0ECHDx825fxOHx8f+fn5adu2bUVh89ChQ7LZbGU6HPd6Xe1NAgAA5rHbC9mr6QTxkxOLvt/88TFQmbFel43Tt7Tt27dXRkaGli9frsLCQuXk5Gj16tVFz9vtduXn56ugoECSlJ+fr/z8fBmGoVOnTsnX17eor6+vr06dOmVabSNGjNDkyZOVkZEhm82muLg4RUVFqUmTJqaNAQAAXIugCQDO4fTDaCVp7ty5mjRpko4fPy4vLy/FxMTotddekyQlJSVp2LBhJebJyMjQjz/+qJUrV2rGjBmSpJ49e+rf//73ZfdsTpo0ScnJydqzZ0+p67Lb7YqLi1NSUpLOnz+vbt26KTExUfXq1bvOV1p6HEYLAAAAoLK52t5dl4TN65WTk6POnTtr8+bNysvLU+fOnU07ZxMAAADm4XBDVEWs12Xj9HM2y8PHx0ejR49WZGSkJOmNN94gaAIAAABABVSpwqYkPfnkk3ryySddXQYAAAAA4CrYLQgAAAAAMB1hEwAAAABgOsImAAAAAMB0hE0AAAAAgOkImwAAAAAA0xE2AQAAAACmI2wCAAAAAExH2AQAAAAAmI6wCQAAAAAwHWETAAAAAGA6wiYAAAAAwHSETQAAAACA6QibAAAAAADTETYBAAAAAKYjbAIAAAAATEfYBAAAAACYjrAJAAAAADAdYRMAAAAAYDrCJgAAAADAdIRNAAAAAIDpCJsAAAAAANMRNgEAAAAApiNsAgAAAABMR9gEAAAAAJiOsAkAAAAAMB1hEwAAAABgOsImAAAAAMB0hE0AAAAAgOkImwAAAAAA07m7ugAAAABUbjv3HtSWXftLtH+4+IsSjz1q1dSAXp3l5sY+D6CqI2wCAACgXO5o2kgp/92kvN/yi7Xvzzha4vGDkSEETaCa4H86AAAAysXTo5a6hd9zzX51fazqFHS3EyoCUBEQNgEAAFBuwe1a6JZ6vlft82DnjnJ3d3NSRQBcjbAJAACAcnOrUUO9u3S64vPNGjdQq+aNnVgRAFercGFz0aJFCg8Pl9Vqlbu7c08ptdvtGjdunOrXry8vLy/169dP2dnZTq0BAACgsmrepKFaXiZQWiwW9eocKovF4oKqALhKhQubvr6+io2N1fTp050+dkJCglJSUpSWlqZjx45JkgYPHuz0OgAAACqrnvd3lFuN4l8xO7RrodturuuiigC4isvC5qZNm9SlSxdZrVb5+Piof//+kqSoqCgNGjRI/v7+Tq8pMTFRcXFx8vf3l7e3t6ZMmaJVq1YpMzPT6bUAAABURvXqeCs0qHXRv2vdUFPdwq598SAAVY9LwuaSJUvUt29fxcbGKisrS0ePHtXw4cNNHSMhIUFt27Ytdf+cnBwdOXJEQUFBRW3NmjWT1WrVjh07TK0NAACgKuvSqb1u8vQoelz7Jk8XVwTAFSyGYRjOHDAvL0+NGzfW7Nmz9dBDD12xX2pqqrp27aqLFy8Wa+/atat27NihUaNG6aWXXjKtrqNHj8rPz0+HDh1S06ZNi9obN26s1157TU888YRpY11O/OREhy4fAAAAAMyWEDfiis859wo8ktavXy+LxaLo6Ojrmj8pKUlr1qwpOqfSLF5eXpKkM2fOFGvPycmR1Wo1dazLudqbBAAAUNnYCwt14mS2bm9ws6tLAUwTPzmx6Hv7Hx/j8px+GG12drZ8fX2v+2pkjRo1Mrmi3/n4+MjPz0/btm0rajt06JBsNluZDscFAADA77dCIWgC1ZvT92y2b99eGRkZWr58uXr27Cmbzaa0tDRFRUVJ+v32IxcuXFBBQYEkKT8/X5JUq1Yth18ue8SIEZo8ebLuv/9+1a1bV3FxcYqKilKTJk0cOq7EYbQAAABAZfDH7+18h69gh9Hefffdmj17tp577jkNGjRIXl5eiomJKQqb8+fP17Bhw4r6e3r+fkJ5RkZGmULfpEmTlJycrD179pR6nvj4eP36668KDg7W+fPn1a1bNy1YsKDU85cHu+ABAACAio3DaMvG6RcIMkNSUpKOHTtm6gWCAAAAAOBqCJtl4/Q9m+UVExOjtLQ0nT9/XmlpaVq+fLmrSwIAAAAA/EmlC5sffvihq0sAAAAAAFyD069GCwAAAACo+gibAAAAAADTETYBAAAAAKYjbAIAAAAATEfYBAAAAACYjrAJAAAAADAdYRMAAAAAYDrCJgAAAADAdIRNAAAAAIDpCJsAAAAAANMRNgEAAAAApiNsAgAAAABMR9gEAAAAAJiOsAkAAAAAMB1hEwAAAABgOsImAAAAAMB0hE0AAAAAgOkImwAAAAAA0xE2AQAAAACmI2wCAAAAAExH2AQAAAAAmI6wCQAAAAAwHWETAAAAAGA6wiYAAAAAwHSETQAAAACA6QibAAAAAADTETYBAAAAAKYjbAIAAAAATOfu6gIAAAAAoKI5eiJL+QUFJdr/d/hYicc13d3VpNGtTqutsrAYhmG4uggAAAAAqEg2bdmt5Wu/KVXf+0MDFXVfsIMrqnw4jBYAAAAA/qRjYCvVr+NzzX5etW9UZMcAJ1RU+RA2AQAAAOBP3NxqqFfnjtfs1+O+Dqp1Q00nVFT5EDYBAAAA4DLuauanO5vefsXnG91aX4F33+HEiiqXChc2Fy1apPDwcFmtVrm7O/f6RXa7XePGjVP9+vXl5eWlfv36KTs726k1AAAAAKg4enbuqBoWy2Wf69Ul9IrPoQKGTV9fX8XGxmr69OlOHzshIUEpKSlKS0vTsWO/X1lq8ODBTq8DAAAAQMVwSz1fhQS2KtHetoU/V6C9BpeFzU2bNqlLly6yWq3y8fFR//79JUlRUVEaNGiQ/P39nV5TYmKi4uLi5O/vL29vb02ZMkWrVq1SZmam02sBAAAAUDF0DQuSp0eton+7u7vpgcgQF1ZUObgkbC5ZskR9+/ZVbGyssrKydPToUQ0fPtzUMRISEtS2bdtS98/JydGRI0cUFBRU1NasWTNZrVbt2LHD1NoAAAAAVB43eXqo673/f064L7itfL29XFhR5eD0sJmXl6ennnpKiYmJ6tevnzw8POTl5aWoqKhrznvw4EHdd999Cg8PV1hYmLZs2XLFvvHx8dq5c2ep68rNzZUkeXt7F2v38fGRzWYr9XIAAAAAVD2/3wrFW161b1QEtzopFedegUfS+vXrZbFYFB0dXeZ5fXx89Omnn6pu3br64Ycf9NRTT2nDhg2m1OXl9fsvE2fOnCnWnpOTI6vVasoYVxM/OdHhYwAAAAAovwnT5ri6hAojIW7EFZ9zetjMzs6Wr6+vLNdx1aa6desWPa5Vq5bc3NxMq8vHx0d+fn7atm2bAgJ+/6Xi0KFDstlsZToc93pd7U0CAAAAUDEYhnFdWaY6cvphtO3bt1dGRoaWL1+uwsJC5eTkaPXq1UXP2+125efnq6CgQJKUn5+v/Px8GYZRrM/f//53xcfHm1rbiBEjNHnyZGVkZMhmsykuLk5RUVFq0qSJqeMAAAAAqJwImqXn9D2bd999t2bPnq3nnntOgwYNkpeXl2JiYorO2Zw/f76GDRtW1N/T01OSlJGRoSZNmsgwDMXExKhXr17q0aPHFceZNGmSkpOTtWfPnlLXFh8fr19//VXBwcE6f/68unXrpgULFlznKy0bDqMFAAAAUNlc7QhNi/HHXYaVwMiRI3XLLbfo5ZdfdnUpAAAAAIArqFRhMzU1Vd27d1enTp0kSXXq1NHSpUtdXBUAAAAA4M8qVdgEAAAAAFQOTr9AEAAAAACg6iNsAgAAAABMR9gEAAAAAJiOsAkAAAAAMB1hEwAAAABgOsImAAAAAMB0hE0AAAAAgOkImwAAAAAA0xE2AQAAAACmI2wCAAAAAExH2AQAAAAAmI6wCQAAAAAwHWETAAAAAGA6wiYAAAAAwHSETQAAAACA6QibAAAAAADTETYBAAAAAKYjbAIAAAAATEfYBAAAAACYjrAJAAAAADAdYRMAAAAAYDrCJgAAAADAdIRNAAAAAIDpCJsAAAAAANP9f383khk2Do0nAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1204x379.26 with 1 Axes>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t=8 #time\n",
    "\n",
    "q1 = QuantumRegister(3)\n",
    "c1 = ClassicalRegister(3)\n",
    "qw1 = QuantumCircuit(q1, c1)\n",
    "\n",
    "qw1.x(q1[1])\n",
    "qw1.cx(q1[2], q1[1])\n",
    "qw1.u3(t, 0, 0, q1[2])\n",
    "qw1.cx(q1[2], q1[0])\n",
    "qw1.u3(t, 0, 0, q1[2])\n",
    "qw1.cx(q1[2], q1[0])\n",
    "qw1.cx(q1[2], q1[1])\n",
    "qw1.u3(2*t, 0, 0, q1[2])\n",
    "\n",
    "qw1.measure(q1[0], c1[0])\n",
    "qw1.measure(q1[1], c1[1])\n",
    "qw1.measure(q1[2], c1[2])\n",
    "\n",
    "print(qw1.qasm())\n",
    "qw1.draw(output='mpl')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Below is the result when executing the circuit on the simulator."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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9e8D/svMpgL3A6cClwAXJuzzL8B3zextQvVsIaGV7iPJPhgRETm0NGvSdPc/mlln4FYgF1gGjHH30miV/Brrv21mY4BfELqllAHXu/u0hNWuA34A3At8htA46AHgDkRERJpQs4+aE7VqrbVlq7ufXkvZC8Dgeva3A/hW9BAREUka3fcTERGJSUlTREQkJiVNERGRmJQ0RUREYlLSFBERiUlJU0REJCYlTRERkZiUNEVERGJS0hQREYlJSVNERCQmJU0REZGYlDRFRERiUtIUERGJSUlTREQkJiVNERGRmJQ0RUREYlLSFBERiUlJUx/wG/QAABRQSURBVEREJCYlTRERkZiUNEVERGJS0hQREYlJSVNERCQmJU0REZGYlDRFRERiUtIUERGJSUlTREQkJiVNERGRmJQ0RUREYlLSFBERiUlJU0REJCYlTRERkZiUNEVERGJS0hQREYlJSVMkBebMmcOQIUMoKipi6tSp+y3fvXs3l156KUVFRYwYMYJ169YBsGXLFs4++2yOOeYYJkyYsM82r732GqeeeipFRUV897vfxd2b5VhEDiVKmiLNrLKykgkTJvDkk0+ycOFCpk2bxhtvvLHPOo899hgdO3akuLiYq6++mkmTJgGQlZXFxIkTueOOO/bb70033cTUqVN59dVXeeutt5gzZ05zHI7IIUVJU6SZFRcX07NnT3r06EHr1q0ZO3Yss2bN2med5557jgsuuACAc845h3nz5uHutGvXjpNOOomsrKx91t+4cSM7duzgc5/7HGbGBRdcwHPPPddsxyRyqFDSFGlm5eXldO3atfp1Xl4e5eXlda7TsmVLOnTowJYtW+rdZ15eXr37bEoHW70M8Itf/IKioiKGDBnC3//+9+ryQYMGceqppzJ8+HDOPPPMpMUu0hhKmpKxknHihlB9etppp1Vf6cm+GlO9/MYbbzB9+nQWLFjAU089xc0330xlZWX1dn/+85+ZN28ec+fOTVr8+t5IYyhpSkZK5on7vvvu4/jjj09a7Lm5uWzYsKH6dVlZGbm5uXWus3fvXj744AOys7Pr3WdZWVm9+2wqjalenjVrFmPHjiUrK4vu3bvTs2dPiouLkxJnbTL5eyPpQUlTMlKyTtwbNmzgb3/7GxdffHHSYh88eDAlJSWUlpZSUVHB9OnTGTVq1D7rjB49mieeeAKAGTNmMGzY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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "job = execute(qw1, sim_backend, shots=1000)\n",
    "result = job.result()\n",
    "plot_histogram(result.get_counts())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And below is the result when executing the circuit on the real device."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Job Status: job has successfully run\n"
     ]
    }
   ],
   "source": [
    "job = execute(qw1, backend=device_backend, shots=100)\n",
    "job_monitor(job)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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IskuyoxAfwXOcfePzWwlNXcEAsDd/6khgxMREUkmUa40ZwEVHX/qmhFIRETkuHbEISfufqe774l7Xuuj8cNNPvPnz2fYsGHk5+czbdq0w/YvWrSIc889l4yMDObMmVNl349+9CPOOusszjjjDG677Tbcw0X88uXLGT58OPn5+VW2i4hIYmlavGNQXl7OpEmTePrpp1m8eDGzZs3i3XffrVKme/fu3H///YwbN67K9jfffJM333yT1157jUWLFrF06VJef/11AG699VamTZvG22+/zYYNG5g/f36TnZOIiNQuyj3NOu9jxjvR7mkWFhbSs2dPcnJyABg7dizz5s2jX79+lWWys7MBaNas6vcTM2P//v2UlZXh7hw8eJCMjAy2bt3Krl27OP300wEYP348c+fOZdSoUU1zUiIiUquoq5xIDUpLS+nWrVvl66ysLAoLCyMdO2zYMM4++2xyc3Nxd6699lr69u3LsmXLyMrKqlJnaWlpg8cuIiL1F2WVkxPyXmVjKyoq4r333mPVqlVAuEpdvHgxrVu3TnBkIiJSG93TPAaZmZls2bKl8nVJSQmZmZmRjn3hhRcYOnQoJ510EieddBIFBQUsWbKEzMxMSkpKjqpOERFpXEdMmmb2VzPrHHu+Mva6xkfjh5tchgwZQlFREcXFxZSVlTF79mwuuOCCSMd2796dRYsWcfDgQQ4cOMCiRYv47Gc/yymnnEL79u1ZsmQJ7s7MmTMZM2ZMI5+JiIhEoXGaxyAtLY2pU6cybtw4ysvLueKKK8jNzWXKlCnk5eUxevRoli5dyle/+lV27tzJH//4R37+85+zePFiLrroIl599VWGDx+OmXHeeedVJtx77rmHG264gX379lFQUEBBQUGCz1RERADsRB4DmJeX5wsWLEh0GAk16bHOjVr/1K993Kj1i4g0tPT09EJ3H1rTvnrNPVvBzE4DcmMv17j7hqMNTkREJFXUK2maWRfgEeBC4NA/NtsLwNXuvr3Wg0VERFJcfXvPPgz0BkYArWOPkUBPtJ6miIgc5+rbPHs+cJ67L47b9rqZfRPQXG8iInJcq++V5jagpgWo9wBqmhURkeNafZPmXcA0M6ucOy72/N7YPhERkePW0UzY3hN438wqpsLpBuwDPkO45ykiInJc0oTtDUBjHUVETgyasF1ERCQiTdguIiISUb2Sppm1NLM7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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "result = job.result()\n",
    "plot_histogram(result.get_counts())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Conclusion**: The walker is unbounded when the quantum walk on the line has one phase."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that the results from simulators match those from real devices. This hints that IBM Q systems can be used to experiments with topological quantum walk."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
